package icu.zlz.emqx.mapper;

import java.util.List;
import java.util.Map;

import icu.zlz.emqx.domain.IotDevices;
import icu.zlz.emqx.domain.IotTopic;
import org.apache.ibatis.annotations.Param;

/**
 * 主题Mapper接口
 * 
 * @author zangs
 * @since 2024-12-31
 */
public interface IotTopicMapper 
{
    /**
     * 查询主题
     * 
     * @param topicId 主题主键
     * @return 主题
     */
    public IotTopic selectIotTopicByTopicId(Long topicId);

    /**
     * 查询主题列表
     * 
     * @param iotTopic 主题
     * @return 主题集合
     */
    public List<IotTopic> selectIotTopicList(IotTopic iotTopic);

    /**
     * 新增主题
     * 
     * @param iotTopic 主题
     * @return 结果
     */
    public int insertIotTopic(IotTopic iotTopic);

    /**
     * 修改主题
     * 
     * @param iotTopic 主题
     * @return 结果
     */
    public int updateIotTopic(IotTopic iotTopic);

    /**
     * 删除主题
     * 
     * @param topicId 主题主键
     * @return 结果
     */
    public int deleteIotTopicByTopicId(Long topicId);

    /**
     * 批量删除主题
     * 
     * @param topicIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteIotTopicByTopicIds(Long[] topicIds);

    List<Map<String, Object>> selectIotTopicMapList(@Param("userId") Long userId);

}
